

/*
* Copyright @ 2017 com.iflysse.trains
* crm 上午1:06:16
* All right reserved.
*
*/
	
package com.qf.dao.daoImpl;

import java.util.List;

import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.transaction.annotation.Transactional;

import com.qf.dao.CrmCourseTypeDao;
import com.qf.pojo.CrmCourseType;
import com.qf.pojo.CrmDepartment;
import com.qf.pojo.PageBean;
import com.qf.pojo.PageCourse;

/**
* @desc: crm
* @descripe:XXXX
* @author: 周锐
* @createTime: 2017年7月26日 上午1:06:16
* @history:
* @version: v1.0

*/
@Transactional(value="txManager")
public class CrmCourseTypeDaoImpl implements CrmCourseTypeDao {
	  private HibernateTemplate htl;
		
	public void setHtl(HibernateTemplate htl) {
		
			this.htl = htl;
		}
		
	@Override
	public void addCourseType(CrmCourseType course) {
		
		htl.save(course);
			
	}

	
	/*
	*(non-Javadoc)
	* @see com.qf.dao.CrmCourseTypeDao#findByPage(int, int)
	*/
		
	@Override
	public PageCourse findByPage(int page, int size) {
		List<CrmCourseType> courseTypes = htl.getSessionFactory().getCurrentSession().createQuery("from CrmCourseType",CrmCourseType.class).setFirstResult((page-1)*size).setMaxResults(size).getResultList();
		int count = htl.getSessionFactory().getCurrentSession().createQuery("from CrmCourseType",CrmCourseType.class).getResultList().size();
		int countPage=(count-1)/size+1;
		return new PageCourse(page,size,countPage,courseTypes);

			
	}

	
	/*
	*(non-Javadoc)
	* @see com.qf.dao.CrmCourseTypeDao#findbyId(java.lang.Long)
	*/
		
	@Override
	public CrmCourseType findbyId(Long courseTypeId) {
		
		//TODO
		return htl.get(CrmCourseType.class, courseTypeId);
			
	}

	
	/*
	*(non-Javadoc)
	* @see com.qf.dao.CrmCourseTypeDao#updateCourse(com.qf.pojo.CrmCourseType)
	*/
		
	@Override
	public void updateCourse(CrmCourseType course) {
		
		htl.update(course);
			
	}

	
	/*
	*(non-Javadoc)
	* @see com.qf.dao.CrmCourseTypeDao#findCourse(java.lang.String, java.lang.Integer, java.lang.Integer)
	*/
		
	@Override
	public PageCourse findCourse(String courseName, Integer totalStart, Integer totalEnd,int page,int size) {
		
		//TODO
		 List<CrmCourseType> courses = htl.getSessionFactory().getCurrentSession().createQuery("from CrmCourseType as c where c.courseName=? or (c. total>? and c. total<?)",CrmCourseType.class).setParameter(0, courseName).
				setParameter(1, totalStart).setParameter(2, totalEnd).setFirstResult((page-1)*size).setMaxResults(size).getResultList();
		 int count=htl.getSessionFactory().getCurrentSession().createQuery("from CrmCourseType as c where c.courseName=? or (c. total>? and c. total<?)",CrmCourseType.class).setParameter(0, courseName).
					setParameter(1, totalStart).setParameter(2, totalEnd).getResultList().size();
		 int countPage=(count-1)/size+1;
		return new PageCourse(page,size,countPage,courses);
			
	}

	
	/*
	*(non-Javadoc)
	* @see com.qf.dao.CrmCourseTypeDao#findbyAllCourse()
	*/
		
	@Override
	public List<CrmCourseType> findbyAllCourse() {
		
		//TODO
		return htl.getSessionFactory().getCurrentSession().createQuery("from CrmCourseType",CrmCourseType.class).getResultList();
			
	}

	/*
	*(non-Javadoc)
	* @see com.qf.dao.CrmCourseType#addCourseType(com.qf.dao.CrmCourseType)
	*/



}

	